package com.smile.common.utils;

/**
 * 常量
 */
public class Constant {
	/** 超级管理员ID */
	public static final int SUPER_ADMIN = 1;

	/**
	 * 菜单类型
	 */
	public enum MenuType {
		/**
		 * 目录
		 */
		CATALOG(0),
		/**
		 * 菜单
		 */
		MENU(1),
		/**
		 * 按钮
		 */
		BUTTON(2);

		private int value;

		private MenuType(int value) {
			this.value = value;
		}

		public int getValue() {
			return value;
		}
	}
	
	public enum GlobalStatus{
		/**
		 * 未**
		 */
		NO((byte)1),
		/**
		 * 已**
		 */
		YES((byte)2);

		private byte value;

		private GlobalStatus(Byte value) {
			this.value = value;
		}
		
		public Byte getValue() {
			return value;
		}
	}
	
	//订单相关
	
    /**
     * 订单来源
     *
     */
    public enum OrderForm{
    	/**
    	 * 企业订单
    	 */
    	CUSTOMER((byte)1),
    	/**
    	 * 个人订单
    	 */
    	MEMBER((byte)2);
    	
        private byte value;
        private OrderForm(Byte value) {
            this.value = value;
        }

        public Byte getValue() {
            return value;
        }
        
    }
    
	/**
	 * 下单人来源
	 */
	public enum OrderPersonFrom {
		/**
		 *企业客户端
		 */
		CUSTOMER((byte) 1),
		/**
		 * App
		 */
		APP((byte) 2),
		/**
		 * 微信
		 */
		WECHAT((byte) 3),
		/**
		 * 后台下单
		 */
		BOSS((byte) 4);
		
		private byte value;

		private OrderPersonFrom(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}
    /**
     * 订单路程类型
     *
     */
    public enum TravelType{
    	/**
    	 * 单程
    	 */
    	DC((byte)1),
    	/**
    	 * 往返
    	 */
    	WF((byte)2),
    	/**
    	 * 包天
    	 */
    	BT((byte)3);
    	
        private byte value;
        
        private TravelType(Byte value) {
            this.value = value;
        }

        public Byte getValue() {
            return value;
        }
    }
    /**
	 * 订单类型
	 * 
	 */
	public enum OrderType {
		/**
		 * 固定订单
		 */
		FIXATION((byte) 1),
		/**
		 * 临时订单
		 */
		TEMPORARY((byte) 2);

		private byte value;

		private OrderType(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}

	/**
	 * 结算方式
	 */
	public enum PayType {
		/**
		 * 月结
		 */
		MONTHLY((byte) 1),
		/**
		 * 线上支付
		 */
		ONLINE((byte) 2),
		/**
		 * 现金支付
		 */
		CASH((byte) 3);

		private byte value;

		private PayType(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}
	
	/**
	 * 付款状态
	 */
	public enum PayStatus {
		/**
		 * 未付款
		 */
		WAIT_PAY((byte) 1),
		/**
		 * 已付预付款
		 */
		PAY_PREPAYFEE((byte) 2),
		/**
		 * 已结清尾款
		 */
		PAY_FINISH((byte) 3);

		private byte value;

		private PayStatus(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}

	/**
	 * 订单状态
	 */
	public enum OrderStatus {
		/**
		 * 预约用车
		 */
		RESERVE((byte) 1),
		/**
		 * 用车确认（待付定金）
		 */
		ENSURE((byte) 2),
		/**
		 * 待排车
		 */
		WAIT_ARRANGE((byte) 3),
		/**
		 * 待出行
		 */
		WAIT_START((byte) 4),
		/**
		 * 已出行
		 */
		DONE_START((byte) 5),
		/**
		 * 已付尾款
		 */
		DONE_PAY_TAIL((byte) 6),
		/**
		 * 已完成 
		 */
		DONE_END((byte) 7),
		/**
		 * 反馈无车
		 */
		NO_VEHICLE((byte) 8),
		/**
		 * 已取消
		 */
		DONE_CANCEL((byte) 9);

		private byte value;

		private OrderStatus(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}
	
	/**
	 * 付款状态
	 */
	public enum CancelFrom {
		/**
		 * 客户取消
		 */
		CUSTOMER((byte) 1),
		/**
		 * 后台取消
		 */
		BOSS((byte) 2);

		private byte value;

		private CancelFrom(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}

	/**
	 * 付款状态
	 */
	public enum Payent {
		/**
		 * 我方支付
		 */
		PAY_BOSS((byte) 1),
		/**
		 * 客户支付
		 */
		PAY_CUSTOMER((byte) 2);

		private byte value;

		private Payent(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}
	
	//用车
	public enum OrderTripStatus{
		/**
		 * 预约用车
		 */
		RESERVE((byte) 1),
		/**
		 * 用车确认
		 */
		ENSURE((byte) 2),
		/**
		 * 待排车
		 */
		WAIT_ARRANGE((byte) 3),
		/**
		 * 待出行
		 */
		WAIT_START((byte) 4),
		/**
		 * 已出行
		 */
		DONE_START((byte) 5),
		/**
		 * 已完成
		 */
		DONE_END((byte) 6),
		/**
		 * 已取消
		 */
		DONE_CANCEL((byte) 7);
		
		private byte value;

		private OrderTripStatus(Byte value) {
			this.value = value;
		}

		public Byte getValue() {
			return value;
		}
	}

}
